01-ALB개념이해
ALB 개념 이해
Load Balancer란?
쉬운 비유
- Load Balancer = 놀이공원 입구의 직원
- Web 서버들 = 놀이기구들
- 사용자들 = 놀이공원 방문객들
방문객들 → 안내 직원 → 줄이 짧은 놀이기구로 안내
사용자들 → Load Balancer → 부하가 적은 서버로 연결
현재 vs 목표 구조
현재 (Week3)
사용자 → Web서버(1대) → WAS서버(1대)
문제점: 서버 1대 고장나면 모든 사용자 접속 불가
목표 (Week3.5)
┌─ Web서버1 (2a) ┐
사용자 → ALB ┤ ├ → WAS서버들
└─ Web서버2 (2c) ┘
장점: 서버 1대 고장나도 다른 서버로 자동 연결
ALB의 똑똑한 기능들
1. Health Check (건강 체크)
ALB: "서버야, 살아있니?"
서버1: "응, 정상이야!" → 트래픽 보냄
서버2: "어... 고장났어..." → 트래픽 안 보냄
2. 부하 분산 방식
Round Robin (순서대로):
사용자1 → 서버1
사용자2 → 서버2
사용자3 → 서버1
사용자4 → 서버2
3. 고가용성
가용영역 2a 고장 시:
모든 트래픽 → 가용영역 2c로 자동 전환
ALB 구성 요소
Target Group (타겟 그룹)
- 역할: 실제 서버들을 그룹으로 묶어서 관리
- 예시: Web서버 그룹, WAS서버 그룹
Listener (리스너)
- 역할: 들어오는 요청을 어떻게 처리할지 결정
- 예시: 포트 80으로 오는 HTTP 요청 처리
Health Check
- 역할: 서버가 정상인지 주기적으로 확인
- 방법: 특정 URL에 요청 보내서 응답 확인
실습에서 만들 구조
ALB 설정
ALB 이름: webapp-alb
리스너: HTTP 포트 80
타겟 그룹: webapp-web-targets
Health Check: GET /webapp/
연결될 서버들
현재:
- Web서버1 (ap-northeast-2a)
추가 예정:
- Web서버2 (ap-northeast-2c)
ALB vs 다른 로드밸런서
Application Load Balancer (ALB)
- 특징: HTTP/HTTPS 전용, 똑똑한 라우팅
- 용도: 웹 애플리케이션 (우리가 사용할 것)
Network Load Balancer (NLB)
- 특징: TCP/UDP, 초고속 처리
- 용도: 게임 서버, IoT
Classic Load Balancer (CLB)
- 특징: 구형 버전
- 용도: 거의 사용 안함
Week3에서 확인해야 할 것들
현재 Web 서버 동작 확인
정적 파일 접근 테스트:
http://Web서버-Public-IP/webapp/index.html
→ Apache에서 직접 처리되는 정적 페이지
동적 파일 접근 테스트:
http://Web서버-Public-IP/webapp/
→ Tomcat으로 프록시되는 JSP 페이지
두 URL 모두 정상 동작해야 ALB Health Check가 성공합니다.
WAS 서버 동작 확인
Web 서버에 SSH 접속해서 WAS 서버 연결 테스트:
ssh -i webapp-keypair.pem ec2-user@Web서버-Public-IP
# WAS 서버로 요청 테스트
curl http://WAS서버-Private-IP:8080/webapp/
# JSP 페이지가 정상 응답하는지 확인
실습 전 준비사항
1. 기존 서버 정보 기록
다음 정보들을 메모장에 기록해두세요:
Web 서버:
- 인스턴스 ID: i-xxxxxxxxx
- Public IP: x.x.x.x
- Private IP: 10.0.1.x
- 보안 그룹: 기존-web-sg
WAS 서버:
- 인스턴스 ID: i-yyyyyyyyy
- Private IP: 10.0.2.x
- 보안 그룹: 기존-was-sg
2. 현재 아키텍처 동작 재확인
ALB를 만들기 전에 Week3 아키텍처가 완전히 동작하는지 다시 한번 확인:
- Apache 정적 파일 서비스:
http://Web서버-Public-IP/webapp/index.html - Apache → Tomcat 프록시:
http://Web서버-Public-IP/webapp/ - Tomcat → RDS 연결: 사용자 등록/조회 기능 동작
완료 체크리스트
다음 개념을 이해했는지 확인:
다음 단계 미리보기
- Target Group 만들기: 기존 Web 서버를 그룹으로 묶기
- ALB 생성하기: 실제 로드밸런서 만들기
- Health Check 설정: 서버 상태 확인 최적화
- 동작 테스트: ALB를 통한 접속 확인
ALB 개념 이해 완료 이제 실제로 만들어봅시다.
관련 문서: AWS EDU/Archive/조선대학교 AWS 멘토링/Week3.5-HA-Scalable-WebService/01-Multi-AZ-네트워크확장/03-라우팅테이블구성, AWS EDU/Archive/조선대학교 AWS 멘토링/Edu Architecture/README